[]
或 list()
建立[]
為 False
內容會談到
[index1:index2:間隔]
表示
[m:n]
:切片範圍 m 到 n-1,有頭無尾
n-m
,不用再補 1[m:m+n]
表從 m 開始,切出 n 個
a = [1, 2, 3, 4, 5]
a[2:]
a[:-1]
a[::2]
a[::-1]
# [3, 4, 5]
# [1, 2, 3, 4]
# [1, 3, 5]
# [5, 4, 3, 2, 1]
a[2:] = "test"
a[2:] = ["test"]
# [1, 2, 't', 'e', 's', 't']
# [1, 2, 'test']
append(元素)
:附加元素到 list 的最後extend(元素)
:將 list 拆開附加到 list 的最後insert(位置, 元素)
:插入指定元素的位置,原位置往後,若超過則為最後一個del
:刪除指定(範圍)的值remove(值)
:刪除找到的第一個值reverse()
:反轉a = [1, 2, 3, 4, 5]
a.append(10)
a.insert(10, "test")
del a[-1]
a.remove(10)
a.reverse()
# [1, 2, 3, 4, 5, 10]
# [1, 2, 3, 4, 5, 10, 'test']
# [1, 2, 3, 4, 5, 10]
# [1, 2, 3, 4, 5]
# [5, 4, 3, 2, 1]
a = [1, 2, 3, 4, 5]
b = [6, 7]
a.append(b)
a.extend(b)
# [1, 2, 3, 4, 5, [6, 7]]
# [1, 2, 3, 4, 5, 6, 7]
sort()
、sorted()
list.sort()
:屬於 list 的方法,其他種不能使用sorted(list)
:屬於函式,會回傳一個新 list,不會改動原本的,其他種可以使用a = [3, 2, 1, 4, 5]
b = sorted(a)
print(b)
# [1, 2, 3, 4, 5]
print(a)
# [3, 2, 1, 4, 5]
a.sort()
print(a)
# [1, 2, 3, 4, 5]
[]
內還可以放 []
,如 [[], [], []]
li[位置1][位置2]
a = [[0, 1, 2], [10, 11, 12], [20, 21, 22]]
a[1]
# [10, 11, 12]
a[1][2]
# 12
b = a
:=
是賦值,屬於引用(記憶體位置相同),a 改變,b 會跟著改變b = a[:]
b = a.copy()
b = copy.copy(a)
,需 import copy
b = copy.deepcopy(a)
,需 import copy
id(變數)
檢查記憶體位置# 賦值
a = [[0, 1], [0, 2]]
b = a
a.append([0, 3])
print(a)
print(b)
# [[0, 1], [0, 2], [0, 3]]
# [[0, 1], [0, 2], [0, 3]]
# 淺拷貝
import copy
a = [[0, 1], [0, 2]]
b = copy.copy(a)
# b = a.copy()
a.append([0, 3])
print(a)
print(b)
# 表層不受影響
# [[0, 1], [0, 2], [0, 3]]
# [[0, 1], [0, 2]]
a[0][0] = 1
print(a)
print(b)
# 深層受影響
# [[1, 1], [0, 2], [0, 3]]
# [[1, 1], [0, 2]]
# 深拷貝
import copy
a = [[0, 1], [0, 2]]
b = copy.deepcopy(a)
a.append([0, 3])
a[0][0] = 1
print(a)
print(b)
# 獨立不受影響
# [[1, 1], [0, 2], [0, 3]]
# [[0, 1], [0, 2]]
小補充
deepcopy()
deepcopy()
value in []
value not in []
max()
、min()
:找出最大或最小值來看看跟 list 相似的 tuple 以及另一種 set 吧!